#ifndef INTEGER_H
#define INTEGER_H

#include "Number.h"

class Integer : public Number
{
public:
	Integer();
	Integer(int n);
	~Integer() {};
	void setValue(int setvalue);

	int integer;
	std::string word;
	std::string roman;
	int toInteger() const;
	std::string toRomanNumeral() const;
	std::string toWordNumber() const;

	bool operator>(const Integer& rhs) const;
	bool operator<(const Integer& rhs) const;
	bool operator>=(const Integer& rhs) const;
	bool operator<=(const Integer& rhs) const;
	bool operator==(const Integer& rhs) const;
	bool operator!=(const Integer& rhs) const;

	Integer operator+(const Integer& rhs) const;
	Integer operator-(const Integer& rhs) const;
	Integer operator*(const Integer& rhs) const;
	Integer operator/(const Integer& rhs) const;
	Integer operator%(const Integer& rhs) const;

private:
	virtual bool parse();
	std::string toWordNumberOperation(int x, int p = 0);
	std::string toRomanNumeralOperation(int x, int p = 0);


};

#endif
